package com.hb.domain.user.service;

import com.hb.core.base.PageDataInfo;
import com.hb.core.model.SecurityClient;
import com.hb.domain.user.entity.UserDo;
import com.hb.vo.UserVO;
import com.hb.vo.request.UpdatePwdRequestVO;
import com.hb.vo.request.UserAddRequestVO;
import com.hb.vo.request.UserRequestVO;

import java.util.List;

/**
 * @description:
 * @projectName: zhb-frame-build
 * @author: zhouhaizhi
 * @createTime: 2021/8/11 17:09
 * @version:1.0
 */
public interface ISysUserService {

    /**
     *@描述 分页查询所有用户信息
     *@创建人 zhouhaizhi
     *@创建时间 2021/8/16 14:44
     *@参数 
     *@返回值
     *@修改人和其它信息
     */
    PageDataInfo<UserVO> pageInfo(UserRequestVO userRequestVO);

    /**
     *@描述  查询所有用户信息
     *@创建人 zhouhaizhi
     *@创建时间 2021/8/16 11:15
     *@参数
     *@返回值
     *@修改人和其它信息
     */
    List<UserVO> getUserAll();

    /**
     *@描述  根据id查询用户信息
     *@创建人 zhouhaizhi
     *@创建时间 2021/8/17 11:24
     *@参数
     *@返回值
     *@修改人和其它信息
     */
    UserVO getByUserId(String userId);

    /**
     *@描述  新增用户信息
     *@创建人 zhouhaizhi
     *@创建时间 2021/8/17 12:14
     *@参数
     *@返回值
     *@修改人和其它信息
     */
    void addUser(UserDo userDo);

    /**
     *@描述  更新用户信息
     *@创建人 zhouhaizhi
     *@创建时间 2021/8/17 12:14
     *@参数
     *@返回值
     *@修改人和其它信息
     */
    void updateUser(UserDo userDo);

    /**
     *@描述  删除用户信息
     *@创建人 zhouhaizhi
     *@创建时间 2021/8/17 12:15
     *@参数
     *@返回值
     *@修改人和其它信息
     */
    void deleteUser(String userId);

    /** 获取登录账户的信息
     *@描述 
     *@创建人 zhouhaizhi
     *@创建时间 2021/8/27 14:30
     *@参数 
     *@返回值 
     *@修改人和其它信息
     */
    SecurityClient getSecurityClientByLoginName(String loginName);

    /**
     *@描述  更新密码
     *@创建人 zhouhaizhi
     *@创建时间 2021/9/2 15:21
     *@参数
     *@返回值
     *@修改人和其它信息
     */
    void updatePassword(UpdatePwdRequestVO updatePwdRequestVO);
}
